package com.zcxy360.sandtable.domain;

import java.util.ArrayList;
import java.util.List;

public class StageUnitExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public StageUnitExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andUnitIdIsNull() {
            addCriterion("stage_unit.unit_id is null");
            return (Criteria) this;
        }

        public Criteria andUnitIdIsNotNull() {
            addCriterion("stage_unit.unit_id is not null");
            return (Criteria) this;
        }

        public Criteria andUnitIdEqualTo(Integer value) {
            addCriterion("stage_unit.unit_id =", value, "unitId");
            return (Criteria) this;
        }

        public Criteria andUnitIdNotEqualTo(Integer value) {
            addCriterion("stage_unit.unit_id <>", value, "unitId");
            return (Criteria) this;
        }

        public Criteria andUnitIdGreaterThan(Integer value) {
            addCriterion("stage_unit.unit_id >", value, "unitId");
            return (Criteria) this;
        }

        public Criteria andUnitIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("stage_unit.unit_id >=", value, "unitId");
            return (Criteria) this;
        }

        public Criteria andUnitIdLessThan(Integer value) {
            addCriterion("stage_unit.unit_id <", value, "unitId");
            return (Criteria) this;
        }

        public Criteria andUnitIdLessThanOrEqualTo(Integer value) {
            addCriterion("stage_unit.unit_id <=", value, "unitId");
            return (Criteria) this;
        }

        public Criteria andUnitIdIn(List<Integer> values) {
            addCriterion("stage_unit.unit_id in", values, "unitId");
            return (Criteria) this;
        }

        public Criteria andUnitIdNotIn(List<Integer> values) {
            addCriterion("stage_unit.unit_id not in", values, "unitId");
            return (Criteria) this;
        }

        public Criteria andUnitIdBetween(Integer value1, Integer value2) {
            addCriterion("stage_unit.unit_id between", value1, value2, "unitId");
            return (Criteria) this;
        }

        public Criteria andUnitIdNotBetween(Integer value1, Integer value2) {
            addCriterion("stage_unit.unit_id not between", value1, value2, "unitId");
            return (Criteria) this;
        }

        public Criteria andStageIdIsNull() {
            addCriterion("stage_unit.stage_id is null");
            return (Criteria) this;
        }

        public Criteria andStageIdIsNotNull() {
            addCriterion("stage_unit.stage_id is not null");
            return (Criteria) this;
        }

        public Criteria andStageIdEqualTo(Integer value) {
            addCriterion("stage_unit.stage_id =", value, "stageId");
            return (Criteria) this;
        }

        public Criteria andStageIdNotEqualTo(Integer value) {
            addCriterion("stage_unit.stage_id <>", value, "stageId");
            return (Criteria) this;
        }

        public Criteria andStageIdGreaterThan(Integer value) {
            addCriterion("stage_unit.stage_id >", value, "stageId");
            return (Criteria) this;
        }

        public Criteria andStageIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("stage_unit.stage_id >=", value, "stageId");
            return (Criteria) this;
        }

        public Criteria andStageIdLessThan(Integer value) {
            addCriterion("stage_unit.stage_id <", value, "stageId");
            return (Criteria) this;
        }

        public Criteria andStageIdLessThanOrEqualTo(Integer value) {
            addCriterion("stage_unit.stage_id <=", value, "stageId");
            return (Criteria) this;
        }

        public Criteria andStageIdIn(List<Integer> values) {
            addCriterion("stage_unit.stage_id in", values, "stageId");
            return (Criteria) this;
        }

        public Criteria andStageIdNotIn(List<Integer> values) {
            addCriterion("stage_unit.stage_id not in", values, "stageId");
            return (Criteria) this;
        }

        public Criteria andStageIdBetween(Integer value1, Integer value2) {
            addCriterion("stage_unit.stage_id between", value1, value2, "stageId");
            return (Criteria) this;
        }

        public Criteria andStageIdNotBetween(Integer value1, Integer value2) {
            addCriterion("stage_unit.stage_id not between", value1, value2, "stageId");
            return (Criteria) this;
        }

        public Criteria andBusinessModelIdIsNull() {
            addCriterion("stage_unit.business_model_id is null");
            return (Criteria) this;
        }

        public Criteria andBusinessModelIdIsNotNull() {
            addCriterion("stage_unit.business_model_id is not null");
            return (Criteria) this;
        }

        public Criteria andBusinessModelIdEqualTo(Integer value) {
            addCriterion("stage_unit.business_model_id =", value, "businessModelId");
            return (Criteria) this;
        }

        public Criteria andBusinessModelIdNotEqualTo(Integer value) {
            addCriterion("stage_unit.business_model_id <>", value, "businessModelId");
            return (Criteria) this;
        }

        public Criteria andBusinessModelIdGreaterThan(Integer value) {
            addCriterion("stage_unit.business_model_id >", value, "businessModelId");
            return (Criteria) this;
        }

        public Criteria andBusinessModelIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("stage_unit.business_model_id >=", value, "businessModelId");
            return (Criteria) this;
        }

        public Criteria andBusinessModelIdLessThan(Integer value) {
            addCriterion("stage_unit.business_model_id <", value, "businessModelId");
            return (Criteria) this;
        }

        public Criteria andBusinessModelIdLessThanOrEqualTo(Integer value) {
            addCriterion("stage_unit.business_model_id <=", value, "businessModelId");
            return (Criteria) this;
        }

        public Criteria andBusinessModelIdIn(List<Integer> values) {
            addCriterion("stage_unit.business_model_id in", values, "businessModelId");
            return (Criteria) this;
        }

        public Criteria andBusinessModelIdNotIn(List<Integer> values) {
            addCriterion("stage_unit.business_model_id not in", values, "businessModelId");
            return (Criteria) this;
        }

        public Criteria andBusinessModelIdBetween(Integer value1, Integer value2) {
            addCriterion("stage_unit.business_model_id between", value1, value2, "businessModelId");
            return (Criteria) this;
        }

        public Criteria andBusinessModelIdNotBetween(Integer value1, Integer value2) {
            addCriterion("stage_unit.business_model_id not between", value1, value2, "businessModelId");
            return (Criteria) this;
        }

        public Criteria andTempletIdIsNull() {
            addCriterion("stage_unit.templet_id is null");
            return (Criteria) this;
        }

        public Criteria andTempletIdIsNotNull() {
            addCriterion("stage_unit.templet_id is not null");
            return (Criteria) this;
        }

        public Criteria andTempletIdEqualTo(Integer value) {
            addCriterion("stage_unit.templet_id =", value, "templetId");
            return (Criteria) this;
        }

        public Criteria andTempletIdNotEqualTo(Integer value) {
            addCriterion("stage_unit.templet_id <>", value, "templetId");
            return (Criteria) this;
        }

        public Criteria andTempletIdGreaterThan(Integer value) {
            addCriterion("stage_unit.templet_id >", value, "templetId");
            return (Criteria) this;
        }

        public Criteria andTempletIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("stage_unit.templet_id >=", value, "templetId");
            return (Criteria) this;
        }

        public Criteria andTempletIdLessThan(Integer value) {
            addCriterion("stage_unit.templet_id <", value, "templetId");
            return (Criteria) this;
        }

        public Criteria andTempletIdLessThanOrEqualTo(Integer value) {
            addCriterion("stage_unit.templet_id <=", value, "templetId");
            return (Criteria) this;
        }

        public Criteria andTempletIdIn(List<Integer> values) {
            addCriterion("stage_unit.templet_id in", values, "templetId");
            return (Criteria) this;
        }

        public Criteria andTempletIdNotIn(List<Integer> values) {
            addCriterion("stage_unit.templet_id not in", values, "templetId");
            return (Criteria) this;
        }

        public Criteria andTempletIdBetween(Integer value1, Integer value2) {
            addCriterion("stage_unit.templet_id between", value1, value2, "templetId");
            return (Criteria) this;
        }

        public Criteria andTempletIdNotBetween(Integer value1, Integer value2) {
            addCriterion("stage_unit.templet_id not between", value1, value2, "templetId");
            return (Criteria) this;
        }

        public Criteria andNameIsNull() {
            addCriterion("stage_unit.name is null");
            return (Criteria) this;
        }

        public Criteria andNameIsNotNull() {
            addCriterion("stage_unit.name is not null");
            return (Criteria) this;
        }

        public Criteria andNameEqualTo(String value) {
            addCriterion("stage_unit.name =", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotEqualTo(String value) {
            addCriterion("stage_unit.name <>", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThan(String value) {
            addCriterion("stage_unit.name >", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThanOrEqualTo(String value) {
            addCriterion("stage_unit.name >=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThan(String value) {
            addCriterion("stage_unit.name <", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThanOrEqualTo(String value) {
            addCriterion("stage_unit.name <=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLike(String value) {
            addCriterion("stage_unit.name like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotLike(String value) {
            addCriterion("stage_unit.name not like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameIn(List<String> values) {
            addCriterion("stage_unit.name in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotIn(List<String> values) {
            addCriterion("stage_unit.name not in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameBetween(String value1, String value2) {
            addCriterion("stage_unit.name between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotBetween(String value1, String value2) {
            addCriterion("stage_unit.name not between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andIntroIsNull() {
            addCriterion("stage_unit.intro is null");
            return (Criteria) this;
        }

        public Criteria andIntroIsNotNull() {
            addCriterion("stage_unit.intro is not null");
            return (Criteria) this;
        }

        public Criteria andIntroEqualTo(String value) {
            addCriterion("stage_unit.intro =", value, "intro");
            return (Criteria) this;
        }

        public Criteria andIntroNotEqualTo(String value) {
            addCriterion("stage_unit.intro <>", value, "intro");
            return (Criteria) this;
        }

        public Criteria andIntroGreaterThan(String value) {
            addCriterion("stage_unit.intro >", value, "intro");
            return (Criteria) this;
        }

        public Criteria andIntroGreaterThanOrEqualTo(String value) {
            addCriterion("stage_unit.intro >=", value, "intro");
            return (Criteria) this;
        }

        public Criteria andIntroLessThan(String value) {
            addCriterion("stage_unit.intro <", value, "intro");
            return (Criteria) this;
        }

        public Criteria andIntroLessThanOrEqualTo(String value) {
            addCriterion("stage_unit.intro <=", value, "intro");
            return (Criteria) this;
        }

        public Criteria andIntroLike(String value) {
            addCriterion("stage_unit.intro like", value, "intro");
            return (Criteria) this;
        }

        public Criteria andIntroNotLike(String value) {
            addCriterion("stage_unit.intro not like", value, "intro");
            return (Criteria) this;
        }

        public Criteria andIntroIn(List<String> values) {
            addCriterion("stage_unit.intro in", values, "intro");
            return (Criteria) this;
        }

        public Criteria andIntroNotIn(List<String> values) {
            addCriterion("stage_unit.intro not in", values, "intro");
            return (Criteria) this;
        }

        public Criteria andIntroBetween(String value1, String value2) {
            addCriterion("stage_unit.intro between", value1, value2, "intro");
            return (Criteria) this;
        }

        public Criteria andIntroNotBetween(String value1, String value2) {
            addCriterion("stage_unit.intro not between", value1, value2, "intro");
            return (Criteria) this;
        }

        public Criteria andTypeIsNull() {
            addCriterion("stage_unit.type is null");
            return (Criteria) this;
        }

        public Criteria andTypeIsNotNull() {
            addCriterion("stage_unit.type is not null");
            return (Criteria) this;
        }

        public Criteria andTypeEqualTo(Integer value) {
            addCriterion("stage_unit.type =", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotEqualTo(Integer value) {
            addCriterion("stage_unit.type <>", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeGreaterThan(Integer value) {
            addCriterion("stage_unit.type >", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("stage_unit.type >=", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeLessThan(Integer value) {
            addCriterion("stage_unit.type <", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeLessThanOrEqualTo(Integer value) {
            addCriterion("stage_unit.type <=", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeIn(List<Integer> values) {
            addCriterion("stage_unit.type in", values, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotIn(List<Integer> values) {
            addCriterion("stage_unit.type not in", values, "type");
            return (Criteria) this;
        }

        public Criteria andTypeBetween(Integer value1, Integer value2) {
            addCriterion("stage_unit.type between", value1, value2, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("stage_unit.type not between", value1, value2, "type");
            return (Criteria) this;
        }

        public Criteria andRoughTimeIsNull() {
            addCriterion("stage_unit.rough_time is null");
            return (Criteria) this;
        }

        public Criteria andRoughTimeIsNotNull() {
            addCriterion("stage_unit.rough_time is not null");
            return (Criteria) this;
        }

        public Criteria andRoughTimeEqualTo(Double value) {
            addCriterion("stage_unit.rough_time =", value, "roughTime");
            return (Criteria) this;
        }

        public Criteria andRoughTimeNotEqualTo(Double value) {
            addCriterion("stage_unit.rough_time <>", value, "roughTime");
            return (Criteria) this;
        }

        public Criteria andRoughTimeGreaterThan(Double value) {
            addCriterion("stage_unit.rough_time >", value, "roughTime");
            return (Criteria) this;
        }

        public Criteria andRoughTimeGreaterThanOrEqualTo(Double value) {
            addCriterion("stage_unit.rough_time >=", value, "roughTime");
            return (Criteria) this;
        }

        public Criteria andRoughTimeLessThan(Double value) {
            addCriterion("stage_unit.rough_time <", value, "roughTime");
            return (Criteria) this;
        }

        public Criteria andRoughTimeLessThanOrEqualTo(Double value) {
            addCriterion("stage_unit.rough_time <=", value, "roughTime");
            return (Criteria) this;
        }

        public Criteria andRoughTimeIn(List<Double> values) {
            addCriterion("stage_unit.rough_time in", values, "roughTime");
            return (Criteria) this;
        }

        public Criteria andRoughTimeNotIn(List<Double> values) {
            addCriterion("stage_unit.rough_time not in", values, "roughTime");
            return (Criteria) this;
        }

        public Criteria andRoughTimeBetween(Double value1, Double value2) {
            addCriterion("stage_unit.rough_time between", value1, value2, "roughTime");
            return (Criteria) this;
        }

        public Criteria andRoughTimeNotBetween(Double value1, Double value2) {
            addCriterion("stage_unit.rough_time not between", value1, value2, "roughTime");
            return (Criteria) this;
        }

        public Criteria andCourseStageIsNull() {
            addCriterion("stage_unit.course_stage is null");
            return (Criteria) this;
        }

        public Criteria andCourseStageIsNotNull() {
            addCriterion("stage_unit.course_stage is not null");
            return (Criteria) this;
        }

        public Criteria andCourseStageEqualTo(Integer value) {
            addCriterion("stage_unit.course_stage =", value, "courseStage");
            return (Criteria) this;
        }

        public Criteria andCourseStageNotEqualTo(Integer value) {
            addCriterion("stage_unit.course_stage <>", value, "courseStage");
            return (Criteria) this;
        }

        public Criteria andCourseStageGreaterThan(Integer value) {
            addCriterion("stage_unit.course_stage >", value, "courseStage");
            return (Criteria) this;
        }

        public Criteria andCourseStageGreaterThanOrEqualTo(Integer value) {
            addCriterion("stage_unit.course_stage >=", value, "courseStage");
            return (Criteria) this;
        }

        public Criteria andCourseStageLessThan(Integer value) {
            addCriterion("stage_unit.course_stage <", value, "courseStage");
            return (Criteria) this;
        }

        public Criteria andCourseStageLessThanOrEqualTo(Integer value) {
            addCriterion("stage_unit.course_stage <=", value, "courseStage");
            return (Criteria) this;
        }

        public Criteria andCourseStageIn(List<Integer> values) {
            addCriterion("stage_unit.course_stage in", values, "courseStage");
            return (Criteria) this;
        }

        public Criteria andCourseStageNotIn(List<Integer> values) {
            addCriterion("stage_unit.course_stage not in", values, "courseStage");
            return (Criteria) this;
        }

        public Criteria andCourseStageBetween(Integer value1, Integer value2) {
            addCriterion("stage_unit.course_stage between", value1, value2, "courseStage");
            return (Criteria) this;
        }

        public Criteria andCourseStageNotBetween(Integer value1, Integer value2) {
            addCriterion("stage_unit.course_stage not between", value1, value2, "courseStage");
            return (Criteria) this;
        }

        public Criteria andVideoIdsIsNull() {
            addCriterion("stage_unit.video_ids is null");
            return (Criteria) this;
        }

        public Criteria andVideoIdsIsNotNull() {
            addCriterion("stage_unit.video_ids is not null");
            return (Criteria) this;
        }

        public Criteria andVideoIdsEqualTo(String value) {
            addCriterion("stage_unit.video_ids =", value, "videoIds");
            return (Criteria) this;
        }

        public Criteria andVideoIdsNotEqualTo(String value) {
            addCriterion("stage_unit.video_ids <>", value, "videoIds");
            return (Criteria) this;
        }

        public Criteria andVideoIdsGreaterThan(String value) {
            addCriterion("stage_unit.video_ids >", value, "videoIds");
            return (Criteria) this;
        }

        public Criteria andVideoIdsGreaterThanOrEqualTo(String value) {
            addCriterion("stage_unit.video_ids >=", value, "videoIds");
            return (Criteria) this;
        }

        public Criteria andVideoIdsLessThan(String value) {
            addCriterion("stage_unit.video_ids <", value, "videoIds");
            return (Criteria) this;
        }

        public Criteria andVideoIdsLessThanOrEqualTo(String value) {
            addCriterion("stage_unit.video_ids <=", value, "videoIds");
            return (Criteria) this;
        }

        public Criteria andVideoIdsLike(String value) {
            addCriterion("stage_unit.video_ids like", value, "videoIds");
            return (Criteria) this;
        }

        public Criteria andVideoIdsNotLike(String value) {
            addCriterion("stage_unit.video_ids not like", value, "videoIds");
            return (Criteria) this;
        }

        public Criteria andVideoIdsIn(List<String> values) {
            addCriterion("stage_unit.video_ids in", values, "videoIds");
            return (Criteria) this;
        }

        public Criteria andVideoIdsNotIn(List<String> values) {
            addCriterion("stage_unit.video_ids not in", values, "videoIds");
            return (Criteria) this;
        }

        public Criteria andVideoIdsBetween(String value1, String value2) {
            addCriterion("stage_unit.video_ids between", value1, value2, "videoIds");
            return (Criteria) this;
        }

        public Criteria andVideoIdsNotBetween(String value1, String value2) {
            addCriterion("stage_unit.video_ids not between", value1, value2, "videoIds");
            return (Criteria) this;
        }

        public Criteria andPlanIdsIsNull() {
            addCriterion("stage_unit.plan_ids is null");
            return (Criteria) this;
        }

        public Criteria andPlanIdsIsNotNull() {
            addCriterion("stage_unit.plan_ids is not null");
            return (Criteria) this;
        }

        public Criteria andPlanIdsEqualTo(String value) {
            addCriterion("stage_unit.plan_ids =", value, "planIds");
            return (Criteria) this;
        }

        public Criteria andPlanIdsNotEqualTo(String value) {
            addCriterion("stage_unit.plan_ids <>", value, "planIds");
            return (Criteria) this;
        }

        public Criteria andPlanIdsGreaterThan(String value) {
            addCriterion("stage_unit.plan_ids >", value, "planIds");
            return (Criteria) this;
        }

        public Criteria andPlanIdsGreaterThanOrEqualTo(String value) {
            addCriterion("stage_unit.plan_ids >=", value, "planIds");
            return (Criteria) this;
        }

        public Criteria andPlanIdsLessThan(String value) {
            addCriterion("stage_unit.plan_ids <", value, "planIds");
            return (Criteria) this;
        }

        public Criteria andPlanIdsLessThanOrEqualTo(String value) {
            addCriterion("stage_unit.plan_ids <=", value, "planIds");
            return (Criteria) this;
        }

        public Criteria andPlanIdsLike(String value) {
            addCriterion("stage_unit.plan_ids like", value, "planIds");
            return (Criteria) this;
        }

        public Criteria andPlanIdsNotLike(String value) {
            addCriterion("stage_unit.plan_ids not like", value, "planIds");
            return (Criteria) this;
        }

        public Criteria andPlanIdsIn(List<String> values) {
            addCriterion("stage_unit.plan_ids in", values, "planIds");
            return (Criteria) this;
        }

        public Criteria andPlanIdsNotIn(List<String> values) {
            addCriterion("stage_unit.plan_ids not in", values, "planIds");
            return (Criteria) this;
        }

        public Criteria andPlanIdsBetween(String value1, String value2) {
            addCriterion("stage_unit.plan_ids between", value1, value2, "planIds");
            return (Criteria) this;
        }

        public Criteria andPlanIdsNotBetween(String value1, String value2) {
            addCriterion("stage_unit.plan_ids not between", value1, value2, "planIds");
            return (Criteria) this;
        }

        public Criteria andDrawingIdsIsNull() {
            addCriterion("stage_unit.drawing_ids is null");
            return (Criteria) this;
        }

        public Criteria andDrawingIdsIsNotNull() {
            addCriterion("stage_unit.drawing_ids is not null");
            return (Criteria) this;
        }

        public Criteria andDrawingIdsEqualTo(String value) {
            addCriterion("stage_unit.drawing_ids =", value, "drawingIds");
            return (Criteria) this;
        }

        public Criteria andDrawingIdsNotEqualTo(String value) {
            addCriterion("stage_unit.drawing_ids <>", value, "drawingIds");
            return (Criteria) this;
        }

        public Criteria andDrawingIdsGreaterThan(String value) {
            addCriterion("stage_unit.drawing_ids >", value, "drawingIds");
            return (Criteria) this;
        }

        public Criteria andDrawingIdsGreaterThanOrEqualTo(String value) {
            addCriterion("stage_unit.drawing_ids >=", value, "drawingIds");
            return (Criteria) this;
        }

        public Criteria andDrawingIdsLessThan(String value) {
            addCriterion("stage_unit.drawing_ids <", value, "drawingIds");
            return (Criteria) this;
        }

        public Criteria andDrawingIdsLessThanOrEqualTo(String value) {
            addCriterion("stage_unit.drawing_ids <=", value, "drawingIds");
            return (Criteria) this;
        }

        public Criteria andDrawingIdsLike(String value) {
            addCriterion("stage_unit.drawing_ids like", value, "drawingIds");
            return (Criteria) this;
        }

        public Criteria andDrawingIdsNotLike(String value) {
            addCriterion("stage_unit.drawing_ids not like", value, "drawingIds");
            return (Criteria) this;
        }

        public Criteria andDrawingIdsIn(List<String> values) {
            addCriterion("stage_unit.drawing_ids in", values, "drawingIds");
            return (Criteria) this;
        }

        public Criteria andDrawingIdsNotIn(List<String> values) {
            addCriterion("stage_unit.drawing_ids not in", values, "drawingIds");
            return (Criteria) this;
        }

        public Criteria andDrawingIdsBetween(String value1, String value2) {
            addCriterion("stage_unit.drawing_ids between", value1, value2, "drawingIds");
            return (Criteria) this;
        }

        public Criteria andDrawingIdsNotBetween(String value1, String value2) {
            addCriterion("stage_unit.drawing_ids not between", value1, value2, "drawingIds");
            return (Criteria) this;
        }

        public Criteria andProblemIdsIsNull() {
            addCriterion("stage_unit.problem_ids is null");
            return (Criteria) this;
        }

        public Criteria andProblemIdsIsNotNull() {
            addCriterion("stage_unit.problem_ids is not null");
            return (Criteria) this;
        }

        public Criteria andProblemIdsEqualTo(String value) {
            addCriterion("stage_unit.problem_ids =", value, "problemIds");
            return (Criteria) this;
        }

        public Criteria andProblemIdsNotEqualTo(String value) {
            addCriterion("stage_unit.problem_ids <>", value, "problemIds");
            return (Criteria) this;
        }

        public Criteria andProblemIdsGreaterThan(String value) {
            addCriterion("stage_unit.problem_ids >", value, "problemIds");
            return (Criteria) this;
        }

        public Criteria andProblemIdsGreaterThanOrEqualTo(String value) {
            addCriterion("stage_unit.problem_ids >=", value, "problemIds");
            return (Criteria) this;
        }

        public Criteria andProblemIdsLessThan(String value) {
            addCriterion("stage_unit.problem_ids <", value, "problemIds");
            return (Criteria) this;
        }

        public Criteria andProblemIdsLessThanOrEqualTo(String value) {
            addCriterion("stage_unit.problem_ids <=", value, "problemIds");
            return (Criteria) this;
        }

        public Criteria andProblemIdsLike(String value) {
            addCriterion("stage_unit.problem_ids like", value, "problemIds");
            return (Criteria) this;
        }

        public Criteria andProblemIdsNotLike(String value) {
            addCriterion("stage_unit.problem_ids not like", value, "problemIds");
            return (Criteria) this;
        }

        public Criteria andProblemIdsIn(List<String> values) {
            addCriterion("stage_unit.problem_ids in", values, "problemIds");
            return (Criteria) this;
        }

        public Criteria andProblemIdsNotIn(List<String> values) {
            addCriterion("stage_unit.problem_ids not in", values, "problemIds");
            return (Criteria) this;
        }

        public Criteria andProblemIdsBetween(String value1, String value2) {
            addCriterion("stage_unit.problem_ids between", value1, value2, "problemIds");
            return (Criteria) this;
        }

        public Criteria andProblemIdsNotBetween(String value1, String value2) {
            addCriterion("stage_unit.problem_ids not between", value1, value2, "problemIds");
            return (Criteria) this;
        }

        public Criteria andVvideoIdsIsNull() {
            addCriterion("stage_unit.vvideo_ids is null");
            return (Criteria) this;
        }

        public Criteria andVvideoIdsIsNotNull() {
            addCriterion("stage_unit.vvideo_ids is not null");
            return (Criteria) this;
        }

        public Criteria andVvideoIdsEqualTo(String value) {
            addCriterion("stage_unit.vvideo_ids =", value, "vvideoIds");
            return (Criteria) this;
        }

        public Criteria andVvideoIdsNotEqualTo(String value) {
            addCriterion("stage_unit.vvideo_ids <>", value, "vvideoIds");
            return (Criteria) this;
        }

        public Criteria andVvideoIdsGreaterThan(String value) {
            addCriterion("stage_unit.vvideo_ids >", value, "vvideoIds");
            return (Criteria) this;
        }

        public Criteria andVvideoIdsGreaterThanOrEqualTo(String value) {
            addCriterion("stage_unit.vvideo_ids >=", value, "vvideoIds");
            return (Criteria) this;
        }

        public Criteria andVvideoIdsLessThan(String value) {
            addCriterion("stage_unit.vvideo_ids <", value, "vvideoIds");
            return (Criteria) this;
        }

        public Criteria andVvideoIdsLessThanOrEqualTo(String value) {
            addCriterion("stage_unit.vvideo_ids <=", value, "vvideoIds");
            return (Criteria) this;
        }

        public Criteria andVvideoIdsLike(String value) {
            addCriterion("stage_unit.vvideo_ids like", value, "vvideoIds");
            return (Criteria) this;
        }

        public Criteria andVvideoIdsNotLike(String value) {
            addCriterion("stage_unit.vvideo_ids not like", value, "vvideoIds");
            return (Criteria) this;
        }

        public Criteria andVvideoIdsIn(List<String> values) {
            addCriterion("stage_unit.vvideo_ids in", values, "vvideoIds");
            return (Criteria) this;
        }

        public Criteria andVvideoIdsNotIn(List<String> values) {
            addCriterion("stage_unit.vvideo_ids not in", values, "vvideoIds");
            return (Criteria) this;
        }

        public Criteria andVvideoIdsBetween(String value1, String value2) {
            addCriterion("stage_unit.vvideo_ids between", value1, value2, "vvideoIds");
            return (Criteria) this;
        }

        public Criteria andVvideoIdsNotBetween(String value1, String value2) {
            addCriterion("stage_unit.vvideo_ids not between", value1, value2, "vvideoIds");
            return (Criteria) this;
        }

        public Criteria andVplanIdsIsNull() {
            addCriterion("stage_unit.vplan_ids is null");
            return (Criteria) this;
        }

        public Criteria andVplanIdsIsNotNull() {
            addCriterion("stage_unit.vplan_ids is not null");
            return (Criteria) this;
        }

        public Criteria andVplanIdsEqualTo(String value) {
            addCriterion("stage_unit.vplan_ids =", value, "vplanIds");
            return (Criteria) this;
        }

        public Criteria andVplanIdsNotEqualTo(String value) {
            addCriterion("stage_unit.vplan_ids <>", value, "vplanIds");
            return (Criteria) this;
        }

        public Criteria andVplanIdsGreaterThan(String value) {
            addCriterion("stage_unit.vplan_ids >", value, "vplanIds");
            return (Criteria) this;
        }

        public Criteria andVplanIdsGreaterThanOrEqualTo(String value) {
            addCriterion("stage_unit.vplan_ids >=", value, "vplanIds");
            return (Criteria) this;
        }

        public Criteria andVplanIdsLessThan(String value) {
            addCriterion("stage_unit.vplan_ids <", value, "vplanIds");
            return (Criteria) this;
        }

        public Criteria andVplanIdsLessThanOrEqualTo(String value) {
            addCriterion("stage_unit.vplan_ids <=", value, "vplanIds");
            return (Criteria) this;
        }

        public Criteria andVplanIdsLike(String value) {
            addCriterion("stage_unit.vplan_ids like", value, "vplanIds");
            return (Criteria) this;
        }

        public Criteria andVplanIdsNotLike(String value) {
            addCriterion("stage_unit.vplan_ids not like", value, "vplanIds");
            return (Criteria) this;
        }

        public Criteria andVplanIdsIn(List<String> values) {
            addCriterion("stage_unit.vplan_ids in", values, "vplanIds");
            return (Criteria) this;
        }

        public Criteria andVplanIdsNotIn(List<String> values) {
            addCriterion("stage_unit.vplan_ids not in", values, "vplanIds");
            return (Criteria) this;
        }

        public Criteria andVplanIdsBetween(String value1, String value2) {
            addCriterion("stage_unit.vplan_ids between", value1, value2, "vplanIds");
            return (Criteria) this;
        }

        public Criteria andVplanIdsNotBetween(String value1, String value2) {
            addCriterion("stage_unit.vplan_ids not between", value1, value2, "vplanIds");
            return (Criteria) this;
        }

        public Criteria andVdrawingIdsIsNull() {
            addCriterion("stage_unit.vdrawing_ids is null");
            return (Criteria) this;
        }

        public Criteria andVdrawingIdsIsNotNull() {
            addCriterion("stage_unit.vdrawing_ids is not null");
            return (Criteria) this;
        }

        public Criteria andVdrawingIdsEqualTo(String value) {
            addCriterion("stage_unit.vdrawing_ids =", value, "vdrawingIds");
            return (Criteria) this;
        }

        public Criteria andVdrawingIdsNotEqualTo(String value) {
            addCriterion("stage_unit.vdrawing_ids <>", value, "vdrawingIds");
            return (Criteria) this;
        }

        public Criteria andVdrawingIdsGreaterThan(String value) {
            addCriterion("stage_unit.vdrawing_ids >", value, "vdrawingIds");
            return (Criteria) this;
        }

        public Criteria andVdrawingIdsGreaterThanOrEqualTo(String value) {
            addCriterion("stage_unit.vdrawing_ids >=", value, "vdrawingIds");
            return (Criteria) this;
        }

        public Criteria andVdrawingIdsLessThan(String value) {
            addCriterion("stage_unit.vdrawing_ids <", value, "vdrawingIds");
            return (Criteria) this;
        }

        public Criteria andVdrawingIdsLessThanOrEqualTo(String value) {
            addCriterion("stage_unit.vdrawing_ids <=", value, "vdrawingIds");
            return (Criteria) this;
        }

        public Criteria andVdrawingIdsLike(String value) {
            addCriterion("stage_unit.vdrawing_ids like", value, "vdrawingIds");
            return (Criteria) this;
        }

        public Criteria andVdrawingIdsNotLike(String value) {
            addCriterion("stage_unit.vdrawing_ids not like", value, "vdrawingIds");
            return (Criteria) this;
        }

        public Criteria andVdrawingIdsIn(List<String> values) {
            addCriterion("stage_unit.vdrawing_ids in", values, "vdrawingIds");
            return (Criteria) this;
        }

        public Criteria andVdrawingIdsNotIn(List<String> values) {
            addCriterion("stage_unit.vdrawing_ids not in", values, "vdrawingIds");
            return (Criteria) this;
        }

        public Criteria andVdrawingIdsBetween(String value1, String value2) {
            addCriterion("stage_unit.vdrawing_ids between", value1, value2, "vdrawingIds");
            return (Criteria) this;
        }

        public Criteria andVdrawingIdsNotBetween(String value1, String value2) {
            addCriterion("stage_unit.vdrawing_ids not between", value1, value2, "vdrawingIds");
            return (Criteria) this;
        }

        public Criteria andVproblemIdsIsNull() {
            addCriterion("stage_unit.vproblem_ids is null");
            return (Criteria) this;
        }

        public Criteria andVproblemIdsIsNotNull() {
            addCriterion("stage_unit.vproblem_ids is not null");
            return (Criteria) this;
        }

        public Criteria andVproblemIdsEqualTo(String value) {
            addCriterion("stage_unit.vproblem_ids =", value, "vproblemIds");
            return (Criteria) this;
        }

        public Criteria andVproblemIdsNotEqualTo(String value) {
            addCriterion("stage_unit.vproblem_ids <>", value, "vproblemIds");
            return (Criteria) this;
        }

        public Criteria andVproblemIdsGreaterThan(String value) {
            addCriterion("stage_unit.vproblem_ids >", value, "vproblemIds");
            return (Criteria) this;
        }

        public Criteria andVproblemIdsGreaterThanOrEqualTo(String value) {
            addCriterion("stage_unit.vproblem_ids >=", value, "vproblemIds");
            return (Criteria) this;
        }

        public Criteria andVproblemIdsLessThan(String value) {
            addCriterion("stage_unit.vproblem_ids <", value, "vproblemIds");
            return (Criteria) this;
        }

        public Criteria andVproblemIdsLessThanOrEqualTo(String value) {
            addCriterion("stage_unit.vproblem_ids <=", value, "vproblemIds");
            return (Criteria) this;
        }

        public Criteria andVproblemIdsLike(String value) {
            addCriterion("stage_unit.vproblem_ids like", value, "vproblemIds");
            return (Criteria) this;
        }

        public Criteria andVproblemIdsNotLike(String value) {
            addCriterion("stage_unit.vproblem_ids not like", value, "vproblemIds");
            return (Criteria) this;
        }

        public Criteria andVproblemIdsIn(List<String> values) {
            addCriterion("stage_unit.vproblem_ids in", values, "vproblemIds");
            return (Criteria) this;
        }

        public Criteria andVproblemIdsNotIn(List<String> values) {
            addCriterion("stage_unit.vproblem_ids not in", values, "vproblemIds");
            return (Criteria) this;
        }

        public Criteria andVproblemIdsBetween(String value1, String value2) {
            addCriterion("stage_unit.vproblem_ids between", value1, value2, "vproblemIds");
            return (Criteria) this;
        }

        public Criteria andVproblemIdsNotBetween(String value1, String value2) {
            addCriterion("stage_unit.vproblem_ids not between", value1, value2, "vproblemIds");
            return (Criteria) this;
        }

        public Criteria andSortIsNull() {
            addCriterion("stage_unit.sort is null");
            return (Criteria) this;
        }

        public Criteria andSortIsNotNull() {
            addCriterion("stage_unit.sort is not null");
            return (Criteria) this;
        }

        public Criteria andSortEqualTo(Integer value) {
            addCriterion("stage_unit.sort =", value, "sort");
            return (Criteria) this;
        }

        public Criteria andSortNotEqualTo(Integer value) {
            addCriterion("stage_unit.sort <>", value, "sort");
            return (Criteria) this;
        }

        public Criteria andSortGreaterThan(Integer value) {
            addCriterion("stage_unit.sort >", value, "sort");
            return (Criteria) this;
        }

        public Criteria andSortGreaterThanOrEqualTo(Integer value) {
            addCriterion("stage_unit.sort >=", value, "sort");
            return (Criteria) this;
        }

        public Criteria andSortLessThan(Integer value) {
            addCriterion("stage_unit.sort <", value, "sort");
            return (Criteria) this;
        }

        public Criteria andSortLessThanOrEqualTo(Integer value) {
            addCriterion("stage_unit.sort <=", value, "sort");
            return (Criteria) this;
        }

        public Criteria andSortIn(List<Integer> values) {
            addCriterion("stage_unit.sort in", values, "sort");
            return (Criteria) this;
        }

        public Criteria andSortNotIn(List<Integer> values) {
            addCriterion("stage_unit.sort not in", values, "sort");
            return (Criteria) this;
        }

        public Criteria andSortBetween(Integer value1, Integer value2) {
            addCriterion("stage_unit.sort between", value1, value2, "sort");
            return (Criteria) this;
        }

        public Criteria andSortNotBetween(Integer value1, Integer value2) {
            addCriterion("stage_unit.sort not between", value1, value2, "sort");
            return (Criteria) this;
        }

        public Criteria andCommitCountIsNull() {
            addCriterion("stage_unit.commit_count is null");
            return (Criteria) this;
        }

        public Criteria andCommitCountIsNotNull() {
            addCriterion("stage_unit.commit_count is not null");
            return (Criteria) this;
        }

        public Criteria andCommitCountEqualTo(Integer value) {
            addCriterion("stage_unit.commit_count =", value, "commitCount");
            return (Criteria) this;
        }

        public Criteria andCommitCountNotEqualTo(Integer value) {
            addCriterion("stage_unit.commit_count <>", value, "commitCount");
            return (Criteria) this;
        }

        public Criteria andCommitCountGreaterThan(Integer value) {
            addCriterion("stage_unit.commit_count >", value, "commitCount");
            return (Criteria) this;
        }

        public Criteria andCommitCountGreaterThanOrEqualTo(Integer value) {
            addCriterion("stage_unit.commit_count >=", value, "commitCount");
            return (Criteria) this;
        }

        public Criteria andCommitCountLessThan(Integer value) {
            addCriterion("stage_unit.commit_count <", value, "commitCount");
            return (Criteria) this;
        }

        public Criteria andCommitCountLessThanOrEqualTo(Integer value) {
            addCriterion("stage_unit.commit_count <=", value, "commitCount");
            return (Criteria) this;
        }

        public Criteria andCommitCountIn(List<Integer> values) {
            addCriterion("stage_unit.commit_count in", values, "commitCount");
            return (Criteria) this;
        }

        public Criteria andCommitCountNotIn(List<Integer> values) {
            addCriterion("stage_unit.commit_count not in", values, "commitCount");
            return (Criteria) this;
        }

        public Criteria andCommitCountBetween(Integer value1, Integer value2) {
            addCriterion("stage_unit.commit_count between", value1, value2, "commitCount");
            return (Criteria) this;
        }

        public Criteria andCommitCountNotBetween(Integer value1, Integer value2) {
            addCriterion("stage_unit.commit_count not between", value1, value2, "commitCount");
            return (Criteria) this;
        }

        public Criteria andPublishCountIsNull() {
            addCriterion("stage_unit.publish_count is null");
            return (Criteria) this;
        }

        public Criteria andPublishCountIsNotNull() {
            addCriterion("stage_unit.publish_count is not null");
            return (Criteria) this;
        }

        public Criteria andPublishCountEqualTo(Integer value) {
            addCriterion("stage_unit.publish_count =", value, "publishCount");
            return (Criteria) this;
        }

        public Criteria andPublishCountNotEqualTo(Integer value) {
            addCriterion("stage_unit.publish_count <>", value, "publishCount");
            return (Criteria) this;
        }

        public Criteria andPublishCountGreaterThan(Integer value) {
            addCriterion("stage_unit.publish_count >", value, "publishCount");
            return (Criteria) this;
        }

        public Criteria andPublishCountGreaterThanOrEqualTo(Integer value) {
            addCriterion("stage_unit.publish_count >=", value, "publishCount");
            return (Criteria) this;
        }

        public Criteria andPublishCountLessThan(Integer value) {
            addCriterion("stage_unit.publish_count <", value, "publishCount");
            return (Criteria) this;
        }

        public Criteria andPublishCountLessThanOrEqualTo(Integer value) {
            addCriterion("stage_unit.publish_count <=", value, "publishCount");
            return (Criteria) this;
        }

        public Criteria andPublishCountIn(List<Integer> values) {
            addCriterion("stage_unit.publish_count in", values, "publishCount");
            return (Criteria) this;
        }

        public Criteria andPublishCountNotIn(List<Integer> values) {
            addCriterion("stage_unit.publish_count not in", values, "publishCount");
            return (Criteria) this;
        }

        public Criteria andPublishCountBetween(Integer value1, Integer value2) {
            addCriterion("stage_unit.publish_count between", value1, value2, "publishCount");
            return (Criteria) this;
        }

        public Criteria andPublishCountNotBetween(Integer value1, Integer value2) {
            addCriterion("stage_unit.publish_count not between", value1, value2, "publishCount");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}